var express = require('express');
var router = express.Router();
const goods = require("../sql/goods")
const sql = require("../sql")


/**
* @apiGroup 商品信息
* @api {get} /api/goods 获取商品数据
* @apiVersion 0.0.0
* @apiDescription 请求所有商品数据或根据id请求单条商品数据
* @apiParam {String} id 商品ID
* @apiSuccess {number} code 请求状态，0为请求失败，1为请求成功，2为不想给你
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "code":200,
*    "title":"请求成功",
*    "msg":[{},{},...]
* }
* @apiSampleRequest http://localhost:3000/api/goods
*/

// 接口功能路由
router.get('/', function(req, res, next) {
    const id = req.query.id || "";
    const ops = {
        colName:goods
    }
    if(id){
        ops.where = {goodsId: id}
    }
    sql.get(ops).then(data=>{
        res.send({
            code:0,
            title:"获取成功",
            data
        })
    })
});

/**
* @apiGroup 商品信息
* @api {get} /api/goods/search 模糊搜索商品数据
* @apiVersion 0.0.0
* @apiDescription 模糊搜索商品名称，品牌，分类，描述数据
* @apiParam {String} kw 模糊搜索关键字
* @apiSuccess {number} code 请求状态，0为请求失败，1为请求成功，2为不想给你
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "code":200,
*    "title":"请求成功",
*    "msg":[{},{},...]
* }
* @apiSampleRequest http://localhost:3000/api/goods/search
*/
router.get('/search', function(req, res, next) {
    const kw = req.query.kw || "";
    const r = new RegExp(kw);
    const ops = {
        colName:goods
    }
    if(kw){
        ops.where = {$or: [{goodsName: r}, {brand: r}, {kind: r}, {describe:r}]}
    }
    sql.get(ops).then(data=>{
        res.send({
            code:0,
            title:"获取成功",
            data
        })
    })
});

/**
* @apiGroup 商品信息
* @api {get} /api/goods/sort 获取商品数据并排序
* @apiVersion 0.0.0
* @apiDescription 获取商品数据并排序
* @apiParam {String} sortKey 要排序的字段
* @apiParam {String} sortDirect 升序或降序：1为升序，-1为降序
* @apiSuccess {number} code 请求状态，0为请求失败，1为请求成功，2为不想给你
* @apiSuccess {string} title 请求说明
* @apiSuccess {array} msg 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "code":200,
*    "title":"请求成功",
*    "msg":[{},{},...]
* }
* @apiSampleRequest http://localhost:3000/api/goods/sort
*/
router.get('/sort', function(req, res, next) {
    const sk = req.query.sortKey;
    const sd = req.query.sortDirect;

    const s = {}
    s[sk] = sd;

    sql.getSort(goods, s).then(data=>{
        res.send({
            code:0,
            title:"获取成功",
            data
        })
    })
});


// 获取分类
// 获取商品总数量
// 价格区间
// 分页获取商品数据
// 针对品牌获取数据
// 各种花样的查询数据


module.exports = router;
